#ifndef ___FSM_H___
#define ___FSM_H___

#include "stm32f10x.h"
#include "RAM.h"
#include "usart.h"

#define FSM_INIT_STATUS				0		//状态机初始化状态
#define FSM_CHECK_H_HEAD_STATUS		0		//状态机检查高位数据头的状态
#define FSM_CHECK_L_HEAD_STATUS		1		//状态机检查低位数据头的状态
#define	FSM_L_DATA_LENTH_STATUS		2		//数据包高位
#define	FSM_H_DATA_LENTH_STATUS		3		//数据包低位
#define	FSM_RCV_DATA_STATUS			4		//接收数据
#define	FSM_STOP_STATUS				5		//状态机停止状态


#define	FSM_DATA_HEAD				0xA66A	//包头

//函数声明
extern void FSM_ReceivePackage(uint16_t dat);
extern void FSM_Init(void);
extern void FSM_ChangeStatus(uint8_t status);	//这条函数可以改变状态机的状态
extern void FSM_SendPackage(void);
extern uint8_t FSM_GetStatus(void);

#endif
